#pragma once

#include "IEntity.h"
#include <list>

class CObjectManager
{
private:
	static CObjectManager* s_Instance;
	CObjectManager()
	{
	}
	~CObjectManager()
	{
	}
	CObjectManager(const CObjectManager&);
	CObjectManager& operator=(const CObjectManager&);
	typedef std::list<IEntity*> ListOfObjects;
	typedef ListOfObjects::iterator LOOIterator;
	ListOfObjects m_lObjs;
public:
	static CObjectManager* GetInstance();
	static void DeleteInstance();
	void AddObject(IEntity* point);
	void RemoveObject(IEntity* point);
	void RemoveEVERYTHING();
	void UpdateEVERYTHING(float f_ElapsedTime);
	void RenderEVERYTHING();
	void CheckCollisions();
};